/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package servlet;

import java.io.IOException;
import java.util.Collection;
import javax.ejb.EJB;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import projet.gestionnaire.GestionnaireClients;
import projetweb.modeles.Client;

/**
 *
 * @author mankou
 */

@WebServlet(name = "Servletclient", urlPatterns = {"/Servletclient"})
public class Servletclient extends HttpServlet {
    @EJB
    private GestionnaireClients gestionnaireClients;

    /** 
     * Processes requests for both HTTP <code>GET</code> and <code>POST</code> methods.
     * @param request servlet request
     * @param response servlet response
     * @throws ServletException if a servlet-specific error occurs
     * @throws IOException if an I/O error occurs
     */
     protected void processRequest(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        // Pratique pour décider de l'action à faire  
        String action = request.getParameter("action");  
        String firstname = request.getParameter("firstname");  
        String lastname = request.getParameter("lastname");  
        String login = request.getParameter("login");  
        String pass = request.getParameter("pass");
        String adress = request.getParameter("adress");
        String forwardTo = "";  
        String message = "";  
  
        if (action != null) {  
            if (action.equals("listerLesClients")) {  
                Collection<Client> liste = gestionnaireClients.getAllclient();  
                request.setAttribute("listeDesClients", liste);  
                forwardTo = "index.jsp?action=listerLesClients";  
                message = "Liste des Clients";  
            } else if (action.equals("creerClientDeTest")) {  
                  gestionnaireClients.creerclientDeTest();  
                Collection<Client> liste = gestionnaireClients.getAllclient();  
                request.setAttribute("listeDesClients", liste);  
                forwardTo = "index.jsp?action=listerLesClients";  
                message = "Liste des Clients";  
            } else if (action.equals("creerUnClient")) {  
                gestionnaireClients.creeClient(firstname,lastname,login, pass, adress);
                forwardTo = "index.jsp?action=listerLesClients";  
                message = "Liste des Clients";  
            } 
             else if(action.equals("chercherParLogin")){
                 Collection<Client> liste = gestionnaireClients.rechercheClient(login);
                 request.setAttribute("listeDesClients", liste);
                 forwardTo = "index.jsp?action=listerLesClients";
                 message = "Liste des Clients trouvés de la recherche ";   
            }
             
             else if(action.equals("updateUtilisateur")){ 
                
                 String pnom = request.getParameter("prenom");
                 gestionnaireClients.updateClient(login, firstname, lastname, pass,adress);
                 Collection<Client> liste = gestionnaireClients.getAllClient();
                 request.setAttribute("listeDesClients", liste);
                 forwardTo = "index.jsp?action=listerLesClients";
                 message = "Client mis a jour  ";   
             }
            
            
            
            else {  
                forwardTo = "index.jsp?action=todo";  
                message = "La fonctionnalité pour le paramètre " + action + " est à implémenter !";  
            }  
        
             RequestDispatcher dp = request.getRequestDispatcher(forwardTo + "&message=" + message);  
        dp.forward(request, response);  
       
        }  
    }
        
    // <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code.">
    /** 
     * Handles the HTTP <code>GET</code> method.
     * @param request servlet request
     * @param response servlet response
     * @throws ServletException if a servlet-specific error occurs
     * @throws IOException if an I/O error occurs
     */
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        processRequest(request, response);
    }

    /** 
     * Handles the HTTP <code>POST</code> method.
     * @param request servlet request
     * @param response servlet response
     * @throws ServletException if a servlet-specific error occurs
     * @throws IOException if an I/O error occurs
     */
    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        processRequest(request, response);
    }

    /** 
     * Returns a short description of the servlet.
     * @return a String containing servlet description
     */
    @Override
    public String getServletInfo() {
        return "Short description";
    }// </editor-fold>
}
